// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router'
import MapPage from '../components/map/MapPage.vue'
import LoginPage from '../components/user/LoginPage.vue'
import IndexPage from '../components/index/IndexPage.vue'
import IndexManage from '../components/manage/IndexManage.vue'
import NProgress from 'nprogress'


const routes = [
    {
        path: '/index',
        name: 'IndexPage',
        component: IndexPage,
        // meta: {
        //     requireAuth: true//需要登陆才能访问
        // },
        children: [
            {
                path: '/',  // 默认子路由（访问 / 时显示 Home）
                name: 'MapPage',
                component: MapPage,
                meta: {
                    requiresAuth: false // 不需要登录就能访问
                }
            },
            {
                path: '/IndexManage',
                name: 'IndexManage',
                component: IndexManage,
                meta: {
                    requiresAuth: true // 需要登录就能访问
                },
                // 嵌套路由 - 这些路由会在后台管理组件的<router-view>中显示
                children: [
                    {
                        path: '',// 默认子路由转发到默认页面
                        redirect: '/dash'  // 默认重定向到首页
                    },
                    {
                        path: '/dash',  // 默认子路由（访问 / 时显示 Home）
                        name: 'Dashboard',
                        component: () => import('@/components/manage/index/Dashboard.vue'), // 懒加载,仪表盘
                        meta: {
                            requiresAuth: true // 需要登录就能访问
                        },
                    }, {
                        path: '/Stia',  // 默认子路由（访问 / 时显示 Home）
                        name: 'Stia',
                        component: () => import('@/components/manage/index/Stia.vue'), // 懒加载,科创助手
                        meta: {
                            requiresAuth: true // 需要登录就能访问
                        },
                    }, {
                        path: '/companyManage',  // 默认子路由（访问 / 时显示 Home）
                        name: 'companyManage',
                        component: () => import('@/components/manage/datamanage/enterprise/EnterpriseManagement.vue'), // 懒加载,企业管理
                        meta: {
                            requiresAuth: true // 需要登录就能访问
                        },
                        children: [
                            {
                                path: '',// 默认子路由转发到默认页面
                                redirect: '/enterprise'  // 默认重定向到首页
                            },
                            {
                                path: '/enterprise',  // 默认子路由（访问 / 时显示 Home）
                                name: 'enterprise',
                                component: () => import('@/components/manage/datamanage/enterprise/page/EnterpriseView.vue'), // 懒加载
                                meta: {
                                    requiresAuth: true // 需要登录就能访问
                                },
                            },
                            {
                                path: '/contract',  // 默认子路由（访问 / 时显示 Home）
                                name: 'contract',
                                component: () => import('@/components/manage/datamanage/enterprise/page/Contract.vue'), // 懒加载
                                meta: {
                                    requiresAuth: true // 需要登录就能访问
                                },
                            },
                            {
                                path: '/location',  // 默认子路由（访问 / 时显示 Home）
                                name: 'location',
                                component: () => import('@/components/manage/datamanage/enterprise/page/Location.vue'), // 懒加载
                                meta: {
                                    requiresAuth: true // 需要登录就能访问
                                },
                            },
                            {
                                path: '/qualification',  // 默认子路由（访问 / 时显示 Home）
                                name: 'qualification',
                                component: () => import('@/components/manage/datamanage/enterprise/page/Qualification.vue'), // 懒加载
                                meta: {
                                    requiresAuth: true // 需要登录就能访问
                                },
                            }
                        ]
                    }, {
                        path: '/parkManage',  // 默认子路由（访问 / 时显示 Home）
                        name: 'parkManage',
                        component: () => import('@/components/manage/datamanage/park/ParkManagement.vue'), // 懒加载
                        meta: {
                            requiresAuth: true // 需要登录就能访问
                        },
                    }, {
                        path: '/EnterpriseFee',  // 默认子路由（访问 / 时显示 Home）
                        name: 'EnterpriseFee',
                        component: () => import('@/components/manage/datamanage/enterprisefee/EnterpriseFee.vue'), // 懒加载
                        meta: {
                            requiresAuth: true // 需要登录就能访问
                        },
                    }, {
                        path: '/temp',  // 默认子路由（访问 / 时显示 Home）
                        name: 'temp',
                        component: () => import('@/components/manage/temp.vue'), // 懒加载,//临时文件
                        meta: {
                            requiresAuth: true // 需要登录就能访问
                        },
                    }
                ]
            },
        ]
    },
    {
        path: '/login',
        name: 'LoginPage',
        component: LoginPage,
        meta: {
            requiresAuth: false // 不需要登录就能访问
        }
    },
    {
        path: '/:pathMatch(.*)*',
        name: 'NotFound',
        component: () => import('../components/NotFound.vue')
    }
]

const router = createRouter({
    // history: createWebHistory(),
    history: createWebHistory('/park/'), // 关键，部署到nginx的关键，nginx配置localhost /park
    routes
})
// 全局前置守卫 - 修改页面标题
router.beforeEach((to, from, next) => {
    // document.title = '数字园区管理系统'
    document.title = '数字园区管理系统'
    const isLogin = localStorage.getItem('park-token');
    if (!NProgress.isStarted()) {
        NProgress.start()
    }
    if (!isLogin) {
        // 未登录时：如果访问的是登录页，直接放行；否则重定向到登录页并记录原路径
        if (to.path === '/login' || to.path === '/') {
            next();
        } else {
            next(`/login?redirect=${to.path}`); // 记录用户原本想访问的路径
        }
    } else {
        // 已登录时：如果访问的是登录页，自动跳转到首页或redirect路径
        if (to.path === '/login') {
            // 从URL中获取redirect参数，优先跳转原路径，否则跳首页
            const redirect = to.query.redirect || '/';
            next(redirect);
        } else {
            next();
        }
    }
});
router.afterEach(() => {
    NProgress.done()
})
export default router